跳到主要内容

状态(States)

状态就是可以在状态机中的任何时候播放的时间轴动画。一个状态可以简单到仅改变对象的颜色和位置,也可以复杂到混合多个时间轴。

在使用状态机时,您会用到几种类型的状态,包括默认状态、单个动画和混合状态。我们将在下面探讨每一种类型。

默认状态(Default States)

默认状态是默认添加到每个状态机中的状态。

图片

默认状态

入口状态(Entry State)

入口状态是状态机的起始状态。您会注意到默认情况下,您的状态机已经有一个连接到入口状态的动画,但您可以随时更改这个动画。注意,如果需要,您可以将多个动画连接到入口状态,例如,您想要构建一个可以从开启或关闭状态开始的开关。

图片

使用入口状态

退出状态(Exit State)

退出状态告诉状态机层停止播放。这个特殊的状态在使用多个层时有其用途。

任意状态(Any State)

与普通状态不同,连接到任意状态的状态可以在任何时候播放,无论您的状态机处于哪个状态。当您想要创建一组可以在任何时候激活的状态时,任意状态非常有用,例如更改角色的皮肤。

图片

使用任意状态的评分系统

动画状态(Animation States)

动画状态包括添加到状态机中的除默认状态之外的所有状态。这些状态将控制您的交互内容的外观和动作。有三种类型的动画状态:单个动画、一维混合和直接混合状态。

要在图表中添加状态,您可以直接从动画列表中拖放动画到图表上。注意,这将创建一个单个动画状态。您可以使用检查器更改状态类型。

图片

将状态拖放到图表上

此外,您可以右键点击图表并创建任何类型的空白状态,而不关联任何时间轴。

图片

右键点击添加状态

要为状态分配时间轴,请使用检查器中的时间轴下拉菜单。

单个动画状态(Single Animation State)

我们创建的任何时间轴都可以用作单个动画状态。根据我们使用的动画类型,单个动画状态可以是单次播放、循环或来回播放状态。在大多数情况下,您会使用单个动画状态来创建大部分状态机。

混合状态(Blend States)

混合状态是混合两个或更多时间轴动画的任何状态。我们使用这些状态来创建加载条、生命值系统、滚动交互和动态面部表情等内容。

有两种类型的混合状态:一维混合和直接混合状态。

一维混合状态(1D Blend State):

一维混合状态允许我们使用单个数值输入混合多个时间轴。当您增加或减少数值输入时,这个状态通过逐渐增加一个动画的权重并减少另一个动画的权重来工作。注意,这种混合不是线性的,而是叠加的,可能会产生意想不到的结果。

图片

使用混合状态的生命值条

配置一维混合状态:

您需要先为混合状态创建几个时间轴。请记住,最好使用只设置了少量属性关键帧的时间轴。在这个生命值条示例中,只设置了 X 缩放的关键帧。

图片

生命值条的时间轴

将一维混合状态添加到图表后,使用检查器来配置状态。

图片

添加混合状态

首先,使用下拉菜单添加您想要驱动混合的数值输入。如果您还没有创建一个,您会注意到这里什么都不显示。

图片

创建并添加数值输入到混合状态

数值输入下方出现的加号按钮允许您向混合状态添加时间轴。使用下拉菜单分配特定的时间轴。注意,您可以添加任意数量的时间轴。

图片

向混合状态添加时间轴

接下来,您需要定义混合状态将工作的数值范围。这个特定的混合在 0 到 100 之间工作。

图片

注意,一旦您定义了范围,输入下拉菜单上方会出现一个图形,直观地表示您的动画将如何混合。当状态机处于活动状态时,当您在定义的范围内增加或减少输入时,您会看到一个可视化表示在图形上移动,显示您的时间轴的混合情况。

图片

混合状态运行中

叠加混合状态(Additive Blend State):

叠加混合状态允许您使用多个数值输入混合多个时间轴。这使我们能够通过混合多个动画来创建独特的姿势和面部表情。在使用叠加混合时,您要么按值混合动画,要么按输入混合。详细信息请参见下文。

图片

使用叠加混合进行面部动画

值与输入混合

向叠加混合状态添加动画时,系统会提示您添加按值混合动画或按输入混合动画。

图片

向叠加混合添加时间轴

按值混合时间轴可以被视为基准动画或默认姿势。这个值不与输入关联,所以不能用来控制状态机。相反,这个值描述了它的混合权重。

输入混合是通过数值输入与默认姿势或动作混合的动画。您的不同输入混合应该各自有自己的数值输入。

其他状态选项(Additional State Options)

当您在状态机图表上选择一个状态时,您有许多可以更改的选项。

更改状态类型

顶部的三个图标允许您更改状态类型。您可以从单个动画、一维混合和叠加混合中选择。

图片

转换状态类型

更改动画

您可以使用下拉菜单更改分配给当前状态的动画。

图片

更改状态的动画

速度

您可以通过更改这个值来改变状态的播放速度。注意,您可以使用正值正向播放动画,使用负值反向播放动画。

图片

更改动画速度

转换

您可以看到从所选状态离开的任何转换。您还可以通过关闭眼睛图标来选择忽略特定的转换。